package config

import "fmt"

type Mysql struct {
	Host         string `yaml:"host"`                                          // 服务器ip
	Port         int    `yaml:"port"`                                          // 端口
	Config       string `yaml:"config"`                                        // 高级配置
	Dbname       string `mapstructure:"db-name" json:"db-name" yaml:"db-name"` // 数据库名
	Prefix       string `yaml:"prefix"`                                        // 表前缀名
	Singular     bool   `yaml:"singular"`                                      //是否开启全局禁用复数，true表示开启
	Username     string `yaml:"username"`                                      // 数据库用户名
	Password     string `yaml:"password"`                                      // 数据库密码
	MaxIdleConns int    `json:"max-idle-conns" yaml:"max-idle-conns"`          // 空闲中的最大连接数
	MaxOpenConns int    `json:"max-open-conns" yaml:"max-open-conns"`          // 打开到数据库的最大连接数
	LogMode      string `yaml:"log-mode"`                                      // 是否开启Gorm全局日志
}

func (m *Mysql) Dsn() string {
	return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?%s", m.Username, m.Password, m.Host, m.Port, m.Dbname, m.Config)
}

func (m *Mysql) GetLogMode() string {
	return m.LogMode
}
